javascript - 在javascript中验证仅字母字符串
全部标签 在创建给定ActiveRecord模型对象的实例后,我需要生成一个简短的(6-8个字符)唯一字符串用作URL中的标识符,采用Instagram照片URL的样式(如http://instagram.com/p/P541i4ErdL/,它我只是争先恐后地成为404)或Youtube的视频网址(如http://www.youtube.com/watch?v=oHg5SJYRHA0)。执行此操作的最佳方法是什么?最简单的是createarandomstring重复直到它是唯一的?有没有一种方法可以对整数ID进行散列/洗牌,使用户无法通过更改一个字符来破解URL(就像我对上面的404'sInst
我有一个学生和一个类(class)模型。学生属于类(class),类(class)有很多学生。classStudenttruevalidates_associated:courseendclassCoursetruevalidates:courseCode,:courseYr,:uniqueness=>{:message=>"Cannotrepeatthecode"}has_many:studentsend在用于创建学生记录的表单中,我让用户输入类(class)ID。但我不知道如何验证用户输入的course_id。学生模型验证不会产生错误,即使我键入不存在的类(class)ID。如何让
当升级到Ruby2.0时,一个测试用例开始失败:expected="\xD1\x9B\x86"assert_equalexpected,actual带有以下消息:expectedbutwas.actual变量包含从外部库调用中获得的二进制字符串。问题是源文件的默认编码(以及字符串文字)changedinRuby2.0从US-ASCII到UTF-8。 最佳答案 解决方案是更改字符串文字的定义以强制执行其编码。有几个可能的选择可以做到这一点:使用Array#pack(所有版本的Ruby):expected=["d19b86"].pack
我在用Ruby替换字符串时遇到一些问题。我的原文:人之所为不如兽之所为。我想替换为:==What==humandoesisnotlike==what==animaldoes.我在使用gsub时遇到区分大小写的问题。(例如,什么,什么)我想保留原始文本。有什么解决办法吗? 最佳答案 如果我理解正确,这就是你想要做的:puts"Whatthehumandoesisnotlikewhatanimaldoes.".gsub(/(what)/i,'==\1==')输出==人类所做的==不同于==动物所做的。
假设我有一个字符串:“hEY”我想把它转换成“嘿”string.gsub!(/([a-z])([A-Z]+)/,'\1'.upcase)这是我的想法,但是当我在gsub方法中使用它时,upcase方法似乎什么都不做。这是为什么?编辑:我想出了这个方法:string.gsub!(/([a-z])([A-Z]+)/){|str|str.downcase!.capitalize!}有没有办法在正则表达式中做到这一点?我不太明白'\1''\2'的意思。那是反向引用吗?这是如何工作的 最佳答案 @sawa有简单的答案,你已经用另一种机制编辑了
Rails'titleize方法删除连字符,Ruby的capitalize方法不会将连字符后面的单词大写。我想要如下内容:"mary-joespencer-moore"=>"Mary-JoeSpencer-Moore""mary-louiseo'donnell"=>"Mary-LouiseO'Donnell" 最佳答案 CheckTitelizeimplementation从中你可以得到:"mary-joespencer-moore".humanize.gsub(/\b('?[a-z])/){$1.capitalize}会给你=>"
我刚刚开始使用RSpec,我在RSpecgithub存储库上复制了非常简单的测试,以确保一切按预期工作:require'spec_helper'describe'HomePage'doit"Welcomestheuser"dovisit'/products'page.shouldhave_content("Welcome")endend当我将字符串更改为“Olá”或“Caçamba”之类的字符串时,问题就开始了。任何带有特殊字符的字符串。当我这样做时,出现以下错误:invalidmultibytechar(US-ASCII)(SyntaxError)invalidmultibytech
在我的Rails应用程序中,我在发送到api的ajax帖子中收到“警告:无法验证CSRFtoken真实性”。app/views/layouts/application.html.haml:!!!%html%head=stylesheet_link_tag"application",:media=>"all"=javascript_include_tag"application"=csrf_meta_tags%body=yieldajaxpost:$.ajax({url:'#{card_credits_path}',type:'POST',beforeSend:function(xhr)
假设我有一个字符串str="Thingstodo:eatandsleep."如何检查"do:"是否存在于str中,不区分大小写? 最佳答案 像这样:puts"yes"ifstr=~/do:/i要返回一个bool值(大概是从一个方法中),将匹配结果与nil进行比较:defhas_do(str)(str=~/do:/i)!=nilend或者,如果你不喜欢!=nil那么你可以使用!~而不是=~并否定结果:defhas_do(str)notstr!~/do:/iend但我真的不喜欢双重否定......
如果我在c1中有一个字符串,我可以通过执行以下操作将其打印成一行:c1.each_linedo|line|putslineend我想像这样给每一行的每一行编号:c1.each_with_indexdo|line,index|puts"#{index}#{line}"end但这对字符串不起作用。我尝试使用$.。当我像这样在上面的迭代器中这样做时:puts#{$.}#{line}它打印每行最后一行的行号。我也尝试过使用lineno,但这似乎只在我加载文件时有效,而在我使用字符串时无效。如何打印或访问字符串中每一行的行号? 最佳答案 稍微